home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xemacs.idb / usr / freeware / lib / xemacs-20.4 / info / gnus.info-11.z / gnus.info-11
Encoding:
GNU Info File  |  1998-05-21  |  39.5 KB  |  1,027 lines

  1. This is Info file ../info/gnus.info, produced by Makeinfo version 1.68
  2. from the input file gnus.texi.
  3.  
  4.    This file documents Gnus, the GNU Emacs newsreader.
  5.  
  6.    Copyright (C) 1995,96 Free Software Foundation, Inc.
  7.  
  8.    Permission is granted to make and distribute verbatim copies of this
  9. manual provided the copyright notice and this permission notice are
  10. preserved on all copies.
  11.  
  12.    Permission is granted to copy and distribute modified versions of
  13. this manual under the conditions for verbatim copying, provided also
  14. that the entire resulting derived work is distributed under the terms
  15. of a permission notice identical to this one.
  16.  
  17.    Permission is granted to copy and distribute translations of this
  18. manual into another language, under the above conditions for modified
  19. versions.
  20.  
  21. 
  22. File: gnus.info,  Node: Score File Syntax,  Next: Headers,  Prev: Backend Interface,  Up: A Programmers Guide to Gnus
  23.  
  24. Score File Syntax
  25. -----------------
  26.  
  27.    Score files are meant to be easily parsable, but yet extremely
  28. mallable.   It was decided that something that had the same read syntax
  29. as an Emacs Lisp list would fit that spec.
  30.  
  31.    Here's a typical score file:
  32.  
  33.      (("summary"
  34.        ("win95" -10000 nil s)
  35.        ("Gnus"))
  36.       ("from"
  37.        ("Lars" -1000))
  38.       (mark -100))
  39.  
  40.    BNF definition of a score file:
  41.  
  42.      score-file       = "" / "(" *element ")"
  43.      element          = rule / atom
  44.      rule             = string-rule / number-rule / date-rule
  45.      string-rule      = "(" quote string-header quote space *string-match ")"
  46.      number-rule      = "(" quote number-header quote space *number-match ")"
  47.      date-rule        = "(" quote date-header quote space *date-match ")"
  48.      quote            = <ascii 34>
  49.      string-header    = "subject" / "from" / "references" / "message-id" /
  50.                         "xref" / "body" / "head" / "all" / "followup"
  51.      number-header    = "lines" / "chars"
  52.      date-header      = "date"
  53.      string-match     = "(" quote <string> quote [ "" / [ space score [ "" /
  54.                         space date [ "" / [ space string-match-t ] ] ] ] ] ")"
  55.      score            = "nil" / <integer>
  56.      date             = "nil" / <natural number>
  57.      string-match-t   = "nil" / "s" / "substring" / "S" / "Substring" /
  58.                         "r" / "regex" / "R" / "Regex" /
  59.                         "e" / "exact" / "E" / "Exact" /
  60.                         "f" / "fuzzy" / "F" / "Fuzzy"
  61.      number-match     = "(" <integer> [ "" / [ space score [ "" /
  62.                         space date [ "" / [ space number-match-t ] ] ] ] ] ")"
  63.      number-match-t   = "nil" / "=" / "<" / ">" / ">=" / "<="
  64.      date-match       = "(" quote <string> quote [ "" / [ space score [ "" /
  65.                         space date [ "" / [ space date-match-t ] ] ] ] ")"
  66.      date-match-t     = "nil" / "at" / "before" / "after"
  67.      atom             = "(" [ required-atom / optional-atom ] ")"
  68.      required-atom    = mark / expunge / mark-and-expunge / files /
  69.                         exclude-files / read-only / touched
  70.      optional-atom    = adapt / local / eval
  71.      mark             = "mark" space nil-or-number
  72.      nil-or-number    = "nil" / <integer>
  73.      expunge          = "expunge" space nil-or-number
  74.      mark-and-expunge = "mark-and-expunge" space nil-or-number
  75.      files            = "files" *[ space <string> ]
  76.      exclude-files    = "exclude-files" *[ space <string> ]
  77.      read-only        = "read-only" [ space "nil" / space "t" ]
  78.      adapt            = "adapt" [ space "ignore" / space "t" / space adapt-rule ]
  79.      adapt-rule       = "(" *[ <string> *[ "(" <string> <integer> ")" ] ")"
  80.      local            = "local" *[ space "(" <string> space <form> ")" ]
  81.      eval             = "eval" space <form>
  82.      space            = *[ " " / <TAB> / <NEWLINE> ]
  83.  
  84.    Any unrecognized elements in a score file should be ignored, but not
  85. discarded.
  86.  
  87.    As you can see, white space is needed, but the type and amount of
  88. white space is irrelevant.  This means that formatting of the score
  89. file is left up to the programmer--if it's simpler to just spew it all
  90. out on one looong line, then that's ok.
  91.  
  92.    The meaning of the various atoms are explained elsewhere in this
  93. manual (*note Score File Format::.).
  94.  
  95. 
  96. File: gnus.info,  Node: Headers,  Next: Ranges,  Prev: Score File Syntax,  Up: A Programmers Guide to Gnus
  97.  
  98. Headers
  99. -------
  100.  
  101.    Internally Gnus uses a format for storing article headers that
  102. corresponds to the NOV format in a mysterious fashion.  One could
  103. almost suspect that the author looked at the NOV specification and just
  104. shamelessly *stole* the entire thing, and one would be right.
  105.  
  106.    "Header" is a severely overloaded term.  "Header" is used in RFC1036
  107. to talk about lines in the head of an article (e.g., `From').  It is
  108. used by many people as a synonym for "head"--"the header and the body".
  109. (That should be avoided, in my opinion.)  And Gnus uses a format
  110. internally that it calls "header", which is what I'm talking about
  111. here.  This is a 9-element vector, basically, with each header (ouch)
  112. having one slot.
  113.  
  114.    These slots are, in order: `number', `subject', `from', `date',
  115. `id', `references', `chars', `lines', `xref'.  There are macros for
  116. accessing and setting these slots--they all have predictable names
  117. beginning with `mail-header-' and `mail-header-set-', respectively.
  118.  
  119.    The `xref' slot is really a `misc' slot.  Any extra info will be put
  120. in there.
  121.  
  122. 
  123. File: gnus.info,  Node: Ranges,  Next: Group Info,  Prev: Headers,  Up: A Programmers Guide to Gnus
  124.  
  125. Ranges
  126. ------
  127.  
  128.    GNUS introduced a concept that I found so useful that I've started
  129. using it a lot and have elaborated on it greatly.
  130.  
  131.    The question is simple: If you have a large amount of objects that
  132. are identified by numbers (say, articles, to take a *wild* example)
  133. that you want to qualify as being "included", a normal sequence isn't
  134. very useful.  (A 200,000 length sequence is a bit long-winded.)
  135.  
  136.    The solution is as simple as the question: You just collapse the
  137. sequence.
  138.  
  139.      (1 2 3 4 5 6 10 11 12)
  140.  
  141.    is transformed into
  142.  
  143.      ((1 . 6) (10 . 12))
  144.  
  145.    To avoid having those nasty `(13 . 13)' elements to denote a
  146. lonesome object, a `13' is a valid element:
  147.  
  148.      ((1 . 6) 7 (10 . 12))
  149.  
  150.    This means that comparing two ranges to find out whether they are
  151. equal is slightly tricky:
  152.  
  153.      ((1 . 5) 7 8 (10 . 12))
  154.  
  155.    and
  156.  
  157.      ((1 . 5) (7 . 8) (10 . 12))
  158.  
  159.    are equal.  In fact, any non-descending list is a range:
  160.  
  161.      (1 2 3 4 5)
  162.  
  163.    is a perfectly valid range, although a pretty long-winded one.  This
  164. is also legal:
  165.  
  166.      (1 . 5)
  167.  
  168.    and is equal to the previous range.
  169.  
  170.    Here's a BNF definition of ranges.  Of course, one must remember the
  171. semantic requirement that the numbers are non-descending.  (Any number
  172. of repetition of the same number is allowed, but apt to disappear in
  173. range handling.)
  174.  
  175.      range           = simple-range / normal-range
  176.      simple-range    = "(" number " . " number ")"
  177.      normal-range    = "(" start-contents ")"
  178.      contents        = "" / simple-range *[ " " contents ] /
  179.                        number *[ " " contents ]
  180.  
  181.    Gnus currently uses ranges to keep track of read articles and article
  182. marks.  I plan on implementing a number of range operators in C if The
  183. Powers That Be are willing to let me.  (I haven't asked yet, because I
  184. need to do some more thinking on what operators I need to make life
  185. totally range-based without ever having to convert back to normal
  186. sequences.)
  187.  
  188. 
  189. File: gnus.info,  Node: Group Info,  Next: Emacs/XEmacs Code,  Prev: Ranges,  Up: A Programmers Guide to Gnus
  190.  
  191. Group Info
  192. ----------
  193.  
  194.    Gnus stores all permanent info on groups in a "group info" list.
  195. This list is from three to six elements (or more) long and exhaustively
  196. describes the group.
  197.  
  198.    Here are two example group infos; one is a very simple group while
  199. the second is a more complex one:
  200.  
  201.      ("no.group" 5 (1 . 54324))
  202.      
  203.      ("nnml:my.mail" 3 ((1 . 5) 9 (20 . 55))
  204.                      ((tick (15 . 19)) (replied 3 6 (19 . 3)))
  205.                      (nnml "")
  206.                      (auto-expire (to-address "ding@gnus.org")))
  207.  
  208.    The first element is the "group name"--as Gnus knows the group,
  209. anyway.  The second element is the "subscription level", which normally
  210. is a small integer.  The third element is a list of ranges of read
  211. articles.  The fourth element is a list of lists of article marks of
  212. various kinds.  The fifth element is the select method (or virtual
  213. server, if you like).  The sixth element is a list of "group
  214. parameters", which is what this section is about.
  215.  
  216.    Any of the last three elements may be missing if they are not
  217. required.  In fact, the vast majority of groups will normally only have
  218. the first three elements, which saves quite a lot of cons cells.
  219.  
  220.    Here's a BNF definition of the group info format:
  221.  
  222.      info          = "(" group space level space read
  223.                      [ "" / [ space marks-list [ "" / [ space method [ "" /
  224.                      space parameters ] ] ] ] ] ")"
  225.      group         = quote <string> quote
  226.      level         = <integer in the range of 1 to inf>
  227.      read          = range
  228.      marks-lists   = nil / "(" *marks ")"
  229.      marks         = "(" <string> range ")"
  230.      method        = "(" <string> *elisp-forms ")"
  231.      parameters    = "(" *elisp-forms ")"
  232.  
  233.    Actually that `marks' rule is a fib.  A `marks' is a `<string>'
  234. consed on to a `range', but that's a bitch to say in pseudo-BNF.
  235.  
  236.    If you have a Gnus info and want to access the elements, Gnus offers
  237. a series of macros for getting/setting these elements.
  238.  
  239. `gnus-info-group'
  240. `gnus-info-set-group'
  241.      Get/set the group name.
  242.  
  243. `gnus-info-rank'
  244. `gnus-info-set-rank'
  245.      Get/set the group rank.
  246.  
  247. `gnus-info-level'
  248. `gnus-info-set-level'
  249.      Get/set the group level.
  250.  
  251. `gnus-info-score'
  252. `gnus-info-set-score'
  253.      Get/set the group score.
  254.  
  255. `gnus-info-read'
  256. `gnus-info-set-read'
  257.      Get/set the ranges of read articles.
  258.  
  259. `gnus-info-marks'
  260. `gnus-info-set-marks'
  261.      Get/set the lists of ranges of marked articles.
  262.  
  263. `gnus-info-method'
  264. `gnus-info-set-method'
  265.      Get/set the group select method.
  266.  
  267. `gnus-info-params'
  268. `gnus-info-set-params'
  269.      Get/set the group parameters.
  270.  
  271.    All the getter functions take one parameter--the info list.  The
  272. setter functions take two parameters--the info list and the new value.
  273.  
  274.    The last three elements in the group info aren't mandatory, so it
  275. may be necessary to extend the group info before setting the element.
  276. If this is necessary, you can just pass on a non-`nil' third parameter
  277. to the three final setter functions to have this happen automatically.
  278.  
  279. 
  280. File: gnus.info,  Node: Emacs/XEmacs Code,  Next: Various File Formats,  Prev: Group Info,  Up: A Programmers Guide to Gnus
  281.  
  282. Emacs/XEmacs Code
  283. -----------------
  284.  
  285.    While Gnus runs under Emacs, XEmacs and Mule, I decided that one of
  286. the platforms must be the primary one.  I chose Emacs.  Not because I
  287. don't like XEmacs or Mule, but because it comes first alphabetically.
  288.  
  289.    This means that Gnus will byte-compile under Emacs with nary a
  290. warning, while XEmacs will pump out gigabytes of warnings while
  291. byte-compiling.  As I use byte-compilation warnings to help me root out
  292. trivial errors in Gnus, that's very useful.
  293.  
  294.    I've also consistently used Emacs function interfaces, but have used
  295. Gnusey aliases for the functions.  To take an example:  Emacs defines a
  296. `run-at-time' function while XEmacs defines a `start-itimer' function.
  297. I then define a function called `gnus-run-at-time' that takes the same
  298. parameters as the Emacs `run-at-time'.  When running Gnus under Emacs,
  299. the former function is just an alias for the latter.  However, when
  300. running under XEmacs, the former is an alias for the following function:
  301.  
  302.      (defun gnus-xmas-run-at-time (time repeat function &rest args)
  303.        (start-itimer
  304.         "gnus-run-at-time"
  305.         `(lambda ()
  306.            (,function ,@args))
  307.         time repeat))
  308.  
  309.    This sort of thing has been done for bunches of functions.  Gnus does
  310. not redefine any native Emacs functions while running under XEmacs--it
  311. does this `defalias' thing with Gnus equivalents instead.  Cleaner all
  312. over.
  313.  
  314.    In the cases where the XEmacs function interface was obviously
  315. cleaner, I used it instead.  For example `gnus-region-active-p' is an
  316. alias for `region-active-p' in XEmacs, whereas in Emacs it is a
  317. function.
  318.  
  319.    Of course, I could have chosen XEmacs as my native platform and done
  320. mapping functions the other way around.  But I didn't.  The performance
  321. hit these indirections impose on Gnus under XEmacs should be slight.
  322.  
  323. 
  324. File: gnus.info,  Node: Various File Formats,  Prev: Emacs/XEmacs Code,  Up: A Programmers Guide to Gnus
  325.  
  326. Various File Formats
  327. --------------------
  328.  
  329. * Menu:
  330.  
  331. * Active File Format::      Information on articles and groups available.
  332. * Newsgroups File Format::  Group descriptions.
  333.  
  334. 
  335. File: gnus.info,  Node: Active File Format,  Next: Newsgroups File Format,  Up: Various File Formats
  336.  
  337. Active File Format
  338. ..................
  339.  
  340.    The active file lists all groups available on the server in
  341. question.  It also lists the highest and lowest current article numbers
  342. in each group.
  343.  
  344.    Here's an excerpt from a typical active file:
  345.  
  346.      soc.motss 296030 293865 y
  347.      alt.binaries.pictures.fractals 3922 3913 n
  348.      comp.sources.unix 1605 1593 m
  349.      comp.binaries.ibm.pc 5097 5089 y
  350.      no.general 1000 900 y
  351.  
  352.    Here's a pseudo-BNF definition of this file:
  353.  
  354.      active      = *group-line
  355.      group-line  = group space high-number space low-number space flag <NEWLINE>
  356.      group       = <non-white-space string>
  357.      space       = " "
  358.      high-number = <non-negative integer>
  359.      low-number  = <positive integer>
  360.      flag        = "y" / "n" / "m" / "j" / "x" / "=" group
  361.  
  362. 
  363. File: gnus.info,  Node: Newsgroups File Format,  Prev: Active File Format,  Up: Various File Formats
  364.  
  365. Newsgroups File Format
  366. ......................
  367.  
  368.    The newsgroups file lists groups along with their descriptions.  Not
  369. all groups on the server have to be listed,  and not all groups in the
  370. file have to exist on the server.  The file is meant purely as
  371. information to the user.
  372.  
  373.    The format is quite simple; a group name, a tab, and the description.
  374. Here's the definition:
  375.  
  376.      newsgroups    = *line
  377.      line          = group tab description <NEWLINE>
  378.      group         = <non-white-space string>
  379.      tab           = <TAB>
  380.      description   = <string>
  381.  
  382. 
  383. File: gnus.info,  Node: Emacs for Heathens,  Next: Frequently Asked Questions,  Prev: A Programmers Guide to Gnus,  Up: Appendices
  384.  
  385. Emacs for Heathens
  386. ==================
  387.  
  388.    Believe it or not, but some people who use Gnus haven't really used
  389. Emacs much before they embarked on their journey on the Gnus Love Boat.
  390. If you are one of those unfortunates whom "`M-C-a'", "kill the region",
  391. and "set `gnus-flargblossen' to an alist where the key is a regexp that
  392. is used for matching on the group name" are magical phrases with little
  393. or no meaning, then this appendix is for you.  If you are already
  394. familiar with Emacs, just ignore this and go fondle your cat instead.
  395.  
  396. * Menu:
  397.  
  398. * Keystrokes::      Entering text and executing commands.
  399. * Emacs Lisp::      The built-in Emacs programming language.
  400.  
  401. 
  402. File: gnus.info,  Node: Keystrokes,  Next: Emacs Lisp,  Up: Emacs for Heathens
  403.  
  404. Keystrokes
  405. ----------
  406.  
  407.    * Q: What is an experienced Emacs user?
  408.  
  409.    * A: A person who wishes that the terminal had pedals.
  410.  
  411.    Yes, when you use Emacs, you are apt to use the control key, the
  412. shift key and the meta key a lot.  This is very annoying to some people
  413. (notably `vi'le users), and the rest of us just love the hell out of
  414. it.  Just give up and submit.  Emacs really does stand for
  415. "Escape-Meta-Alt-Control-Shift", and not "Editing Macros", as you may
  416. have heard from other disreputable sources (like the Emacs author).
  417.  
  418.    The shift keys are normally located near your pinky fingers, and are
  419. normally used to get capital letters and stuff.  You probably use it all
  420. the time.  The control key is normally marked "CTRL" or something like
  421. that.  The meta key is, funnily enough, never marked as such on any
  422. keyboard.  The one I'm currently at has a key that's marked "Alt",
  423. which is the meta key on this keyboard.  It's usually located somewhere
  424. to the left hand side of the keyboard, usually on the bottom row.
  425.  
  426.    Now, us Emacs people don't say "press the meta-control-m key",
  427. because that's just too inconvenient.  We say "press the `M-C-m' key".
  428. `M-' is the prefix that means "meta" and "C-" is the prefix that means
  429. "control".  So "press `C-k'" means "press down the control key, and
  430. hold it down while you press `k'".  "Press `M-C-k'" means "press down
  431. and hold down the meta key and the control key and then press `k'".
  432. Simple, ay?
  433.  
  434.    This is somewhat complicated by the fact that not all keyboards have
  435. a meta key.  In that case you can use the "escape" key.  Then `M-k'
  436. means "press escape, release escape, press `k'".  That's much more work
  437. than if you have a meta key, so if that's the case, I respectfully
  438. suggest you get a real keyboard with a meta key.  You can't live without
  439. it.
  440.  
  441. 
  442. File: gnus.info,  Node: Emacs Lisp,  Prev: Keystrokes,  Up: Emacs for Heathens
  443.  
  444. Emacs Lisp
  445. ----------
  446.  
  447.    Emacs is the King of Editors because it's really a Lisp interpreter.
  448. Each and every key you tap runs some Emacs Lisp code snippet, and since
  449. Emacs Lisp is an interpreted language, that means that you can configure
  450. any key to run any arbitrary code.  You just, like, do it.
  451.  
  452.    Gnus is written in Emacs Lisp, and is run as a bunch of interpreted
  453. functions.  (These are byte-compiled for speed, but it's still
  454. interpreted.)  If you decide that you don't like the way Gnus does
  455. certain things, it's trivial to have it do something a different way.
  456. (Well, at least if you know how to write Lisp code.)  However, that's
  457. beyond the scope of this manual, so we are simply going to talk about
  458. some common constructs that you normally use in your `.emacs' file to
  459. customize Gnus.
  460.  
  461.    If you want to set the variable `gnus-florgbnize' to four (4), you
  462. write the following:
  463.  
  464.      (setq gnus-florgbnize 4)
  465.  
  466.    This function (really "special form") `setq' is the one that can set
  467. a variable to some value.  This is really all you need to know.  Now
  468. you can go and fill your `.emacs' file with lots of these to change how
  469. Gnus works.
  470.  
  471.    If you have put that thing in your `.emacs' file, it will be read
  472. and `eval'ed (which is lisp-ese for "run") the next time you start
  473. Emacs.  If you want to change the variable right away, simply say `C-x
  474. C-e' after the closing parenthesis.  That will `eval' the previous
  475. "form", which is a simple `setq' statement here.
  476.  
  477.    Go ahead--just try it, if you're located at your Emacs.  After you
  478. `C-x C-e', you will see `4' appear in the echo area, which is the
  479. return value of the form you `eval'ed.
  480.  
  481.    Some pitfalls:
  482.  
  483.    If the manual says "set `gnus-read-active-file' to `some'", that
  484. means:
  485.  
  486.      (setq gnus-read-active-file 'some)
  487.  
  488.    On the other hand, if the manual says "set `gnus-nntp-server' to
  489. `nntp.ifi.uio.no'", that means:
  490.  
  491.      (setq gnus-nntp-server "nntp.ifi.uio.no")
  492.  
  493.    So be careful not to mix up strings (the latter) with symbols (the
  494. former).  The manual is unambiguous, but it can be confusing.
  495.  
  496.    \input texinfo
  497.  
  498. 
  499. File: gnus.info,  Node: Frequently Asked Questions,  Prev: Emacs for Heathens,  Up: Appendices
  500.  
  501. Frequently Asked Questions
  502. ==========================
  503.  
  504.    This is the Gnus Frequently Asked Questions list.  If you have a Web
  505. browser, the official hypertext version is at
  506. `http://www.ccs.neu.edu/software/gnus/', and has probably been updated
  507. since you got this manual.
  508.  
  509. * Menu:
  510.  
  511. * Installation FAQ::      Installation of Gnus.
  512. * Customization FAQ::     Customizing Gnus.
  513. * Reading News FAQ::      News Reading Questions.
  514. * Reading Mail FAQ::      Mail Reading Questions.
  515.  
  516. 
  517. File: gnus.info,  Node: Installation FAQ,  Next: Customization FAQ,  Up: Frequently Asked Questions
  518.  
  519. Installation
  520. ------------
  521.  
  522.    * Q1.1  What is the latest version of Gnus?
  523.  
  524.      The latest (and greatest) version is 5.0.10.  You might also run
  525.      across something called *September Gnus*.  September Gnus is the
  526.      alpha version of the next major release of Gnus.  It is currently
  527.      not stable enough to run unless you are prepared to debug lisp.
  528.  
  529.    * Q1.2  Where do I get Gnus?
  530.  
  531.      Any of the following locations:
  532.  
  533.         - `ftp://ftp.ifi.uio.no/pub/emacs/gnus/gnus.tar.gz'
  534.  
  535.         - `ftp://ftp.pilgrim.umass.edu/pub/misc/ding/'
  536.  
  537.         - `gopher://gopher.pilgrim.umass.edu/11/pub/misc/ding/'
  538.  
  539.         - `ftp://aphrodite.nectar.cs.cmu.edu/pub/ding-gnus/'
  540.  
  541.         - `ftp://ftp.solace.mh.se:/pub/gnu/elisp/'
  542.  
  543.    * Q1.3  Which version of Emacs do I need?
  544.  
  545.      At least GNU Emacs 19.28, or XEmacs 19.12 is recommended.  GNU
  546.      Emacs 19.25 has been reported to work under certain circumstances,
  547.      but it doesn't *officially* work on it.  19.27 has also been
  548.      reported to work.  Gnus has been reported to work under OS/2 as
  549.      well as Unix.
  550.  
  551.    * Q1.4  Where is timezone.el?
  552.  
  553.      Upgrade to XEmacs 19.13.  In earlier versions of XEmacs this file
  554.      was placed with Gnus 4.1.3, but that has been corrected.
  555.  
  556.    * Q1.5  When I run Gnus on XEmacs 19.13 I get weird error messages.
  557.  
  558.      You're running an old version of Gnus.  Upgrade to at least version
  559.      5.0.4.
  560.  
  561.    * Q1.6  How do I unsubscribe from the Mailing List?
  562.  
  563.      Send an e-mail message to `ding-request@ifi.uio.no' with the magic
  564.      word *unsubscribe* somewhere in it, and you will be removed.
  565.  
  566.      If you are reading the digest version of the list, send an e-mail
  567.      message to
  568.      `ding-rn-digests-d-request@moe.shore.net' with *unsubscribe* as
  569.      the subject and you will be removed.
  570.  
  571.    * Q1.7  How do I run Gnus on both Emacs and XEmacs?
  572.  
  573.      The basic answer is to byte-compile under XEmacs, and then you can
  574.      run under either Emacsen.  There is, however, a potential version
  575.      problem with easymenu.el with Gnu Emacs prior to 19.29.
  576.  
  577.      Per Abrahamsen <abraham@dina.kvl.dk> writes :
  578.      The internal easymenu.el interface changed between 19.28 and 19.29
  579.      in order to make it possible to create byte compiled files that
  580.      can be shared between Gnu Emacs and XEmacs.  The change is upward
  581.      compatible, but not downward compatible.  This gives the following
  582.      compatibility table:
  583.  
  584.           Compiled with:  | Can be used with:
  585.           ----------------+--------------------------------------
  586.           19.28           | 19.28         19.29
  587.           19.29           |               19.29           XEmacs
  588.           XEmacs          |               19.29           XEmacs
  589.  
  590.      If you have Gnu Emacs 19.28 or earlier, or XEmacs 19.12 or
  591.      earlier, get a recent version of auc-menu.el from
  592.      `ftp://ftp.iesd.auc.dk/pub/emacs-lisp/auc-menu.el', and install it
  593.      under the name easymenu.el somewhere early in your load path.
  594.  
  595.    * Q1.8 What resources are available?
  596.  
  597.      There is the newsgroup Gnu.emacs.gnus. Discussion of Gnus 5.x is
  598.      now taking place there. There is also a mailing list, send mail to
  599.      `ding-request@ifi.uio.no' with the magic word *subscribe*
  600.      somewhere in it.
  601.  
  602.      *NOTE:* the traffic on this list is heavy so you may not want to be
  603.      on it (unless you use Gnus as your mailer reader, that is). The
  604.      mailing list is mainly for developers and testers.
  605.  
  606.      Gnus has a home World Wide Web page at
  607.      `http://www.ifi.uio.no/~larsi/ding.html'.
  608.  
  609.      Gnus has a write up in the X Windows Applications FAQ at
  610.      `http://www.ee.ryerson.ca:8080/~elf/xapps/Q-III.html'.
  611.  
  612.      The Gnus manual is also available on the World Wide Web. The
  613.      canonical source is in Norway at
  614.      `http://www.ifi.uio.no/~larsi/ding-manual/gnus_toc.html'.
  615.  
  616.      There are three mirrors in the United States:
  617.        1. `http://www.miranova.com/gnus-man/'
  618.  
  619.        2.
  620.  
  621.  
  622.           `http://www.pilgrim.umass.edu/pub/misc/ding/manual/gnus_toc.html'
  623.  
  624.        3. `http://www.rtd.com/~woo/gnus/'
  625.  
  626.  
  627.      PostScript copies of the Gnus Reference card are available from
  628.      `ftp://ftp.cs.ualberta.ca/pub/oolog/gnus/'.  They are mirrored at
  629.      `ftp://ftp.pilgrim.umass.edu/pub/misc/ding/refcard/' in the United
  630.      States. And
  631.      `ftp://marvin.fkphy.uni-duesseldorf.de/pub/gnus/' in Germany.
  632.  
  633.      An online version of the Gnus FAQ is available at
  634.      `http://www.miranova.com/~steve/gnus-faq.html'. Off-line formats
  635.      are also available:
  636.      ASCII: `ftp://ftp.miranova.com/pub/gnus/gnus-faq'
  637.      PostScript: `ftp://ftp.miranova.com/pub/gnus/gnus-faq.ps'.
  638.  
  639.    * Q1.9  Gnus hangs on connecting to NNTP server
  640.  
  641.      I am running XEmacs on SunOS and Gnus prints a message about
  642.      Connecting to NNTP server and then just hangs.
  643.  
  644.      Ben Wing <wing@netcom.com> writes :
  645.      I wonder if you're hitting the infamous *libresolv* problem.  The
  646.      basic problem is that under SunOS you can compile either with DNS
  647.      or NIS name lookup libraries but not both.  Try substituting the
  648.      IP address and see if that works; if so, you need to download the
  649.      sources and recompile.
  650.  
  651.    * Q1.10  Mailcrypt 3.4 doesn't work
  652.  
  653.      This problem is verified to still exist in Gnus 5.0.9 and
  654.      Mailcrypt 3.4.  The answer comes from Peter Arius
  655.      <arius@immd2.informatik.uni-erlangen.de>.
  656.  
  657.      I found out that mailcrypt uses `gnus-eval-in-buffer-window',
  658.      which is a macro.  It seems as if you have compiled mailcrypt with
  659.      plain old GNUS in load path, and the XEmacs byte compiler has
  660.      inserted that macro definition into `mc-toplev.elc'.  The solution
  661.      is to recompile `mc-toplev.el' with Gnus 5 in load-path, and it
  662.      works fine.
  663.  
  664.      Steve Baur <steve@miranova.com> adds :
  665.      The problem also manifests itself if neither GNUS 4 nor Gnus 5 is
  666.      in the load-path.
  667.  
  668.    * Q1.11  What other packages work with Gnus?
  669.  
  670.         - Mailcrypt.
  671.  
  672.           Mailcrypt is an Emacs interface to PGP.  It works, it installs
  673.           without hassle, and integrates very easily.  Mailcrypt can be
  674.           obtained from
  675.           `ftp://cag.lcs.mit.edu/pub/patl/mailcrypt-3.4.tar.gz'.
  676.  
  677.         - Tools for Mime.
  678.  
  679.           Tools for Mime is an Emacs MUA interface to MIME.
  680.           Installation is a two-step process unlike most other
  681.           packages, so you should be prepared to move the byte-compiled
  682.           code somewhere.  There are currently two versions of this
  683.           package available.  It can be obtained from
  684.           `ftp://ftp.jaist.ac.jp/pub/GNU/elisp/'.  Be sure to apply the
  685.           supplied patch.  It works with Gnus through version 5.0.9.
  686.           In order for all dependencies to work correctly the load
  687.           sequence is as follows:
  688.                  (load "tm-setup")
  689.                  (load "gnus")
  690.                  (load "mime-compose")
  691.  
  692.           *NOTE:* Loading the package disables citation highlighting by
  693.           default.  To get the old behavior back, use the `M-t' command.
  694.  
  695. 
  696. File: gnus.info,  Node: Customization FAQ,  Next: Reading News FAQ,  Prev: Installation FAQ,  Up: Frequently Asked Questions
  697.  
  698. Customization
  699. -------------
  700.  
  701.    * Q2.1  Custom Edit does not work under XEmacs
  702.  
  703.      The custom package has not been ported to XEmacs.
  704.  
  705.    * Q2.2  How do I quote messages?
  706.  
  707.      I see lots of messages with quoted material in them.  I am
  708.      wondering how to have Gnus do it for me.
  709.  
  710.      This is Gnus, so there are a number of ways of doing this.  You
  711.      can use the built-in commands to do this.  There are the `F' and
  712.      `R' keys from the summary buffer which automatically include the
  713.      article being responded to.  These commands are also selectable as
  714.      Followup and Yank and Reply and Yank in the Post menu.
  715.  
  716.      `C-c C-y' grabs the previous message and prefixes each line with
  717.      `ail-indentation-spaces' spaces or `mail-yank-prefix' if that is
  718.      non-nil, unless you have set your own `mail-citation-hook', which
  719.      will be called to do the job.
  720.  
  721.      You might also consider the Supercite package, which allows for
  722.      pretty arbitrarily complex quoting styles.  Some people love it,
  723.      some people hate it.
  724.  
  725.    * Q2.3 How can I keep my nnvirtual:* groups sorted?
  726.  
  727.      How can I most efficiently arrange matters so as to keep my
  728.      nnvirtual:* (etc) groups at the top of my group selection buffer,
  729.      whilst keeping everything sorted in alphabetical order.
  730.  
  731.      If you don't subscribe often to new groups then the easiest way is
  732.      to first sort the groups and then manually kill and yank the
  733.      virtuals wherever you want them.
  734.  
  735.    * Q2.4  Any good suggestions on stuff for an all.SCORE file?
  736.  
  737.      Here is a collection of suggestions from the Gnus mailing list.
  738.  
  739.        1. From "Dave Disser" <disser@sdd.hp.com>
  740.           I like blasting anything without lowercase letters.  Weeds
  741.           out most of the make $$ fast, as well as the lame titles like
  742.           "IBM" and "HP-UX" with no further description.
  743.                 (("Subject"
  744.                  ("^\\(Re: \\)?[^a-z]*$" -200 nil R)))
  745.  
  746.        2. From "Peter Arius" <arius@immd2.informatik.uni-erlangen.de>
  747.           The most vital entries in my (still young) all.SCORE:
  748.                (("xref"
  749.                  ("alt.fan.oj-simpson" -1000 nil s))
  750.                 ("subject"
  751.                  ("\\<\\(make\\|fast\\|big\\)\\s-*\\(money\\|cash\\|bucks?\\)\\>" -1000 nil r)
  752.                  ("$$$$" -1000 nil s)))
  753.  
  754.        3. From "Per Abrahamsen" <abraham@dina.kvl.dk>
  755.                (("subject"
  756.                  ;; CAPS OF THE WORLD, UNITE
  757.                  ("^..[^a-z]+$" -1 nil R)
  758.                  ;; $$$ Make Money $$$ (Try work)
  759.                  ("$" -1 nil s)
  760.                  ;; I'm important! And I have exclamation marks to prove it!
  761.                  ("!" -1 nil s)))
  762.  
  763.        4. From "heddy boubaker" <boubaker@cenatls.cena.dgac.fr>
  764.           I  would like to contribute with mine.
  765.                (
  766.                 (read-only t)
  767.                 ("subject"
  768.                  ;; ALL CAPS SUBJECTS
  769.                  ("^\\([Rr][Ee]: +\\)?[^a-z]+$" -1 nil R)
  770.                  ;; $$$ Make Money $$$
  771.                  ("$$" -10 nil s)
  772.                  ;; Empty subjects are worthless!
  773.                  ("^ *\\([(<]none[>)]\\|(no subject\\( given\\)?)\\)? *$" -10 nil r)
  774.                  ;; Sometimes interesting announces occur!
  775.                  ("ANN?OU?NC\\(E\\|ING\\)" +10 nil r)
  776.                  ;; Some people think they're on mailing lists
  777.                  ("\\(un\\)?sub?scribe" -100 nil r)
  778.                  ;; Stop Micro$oft NOW!!
  779.                  ("\\(m\\(icro\\)?[s$]\\(oft\\|lot\\)?-?\\)?wind?\\(ows\\|aube\\|oze\\)?[- ]*\\('?95\\|NT\\|3[.]1\\|32\\)" -1001 nil r)
  780.                  ;; I've nothing to buy
  781.                  ("\\(for\\|4\\)[- ]*sale" -100 nil r)
  782.                  ;; SELF-DISCIPLINED people
  783.                  ("\\[[^a-z0-9 \t\n][^a-z0-9 \t\n]\\]" +100 nil r)
  784.                  )
  785.                 ("from"
  786.                  ;; To keep track of posters from my site
  787.                  (".dgac.fr" +1000 nil s))
  788.                 ("followup"
  789.                  ;; Keep track of answers to my posts
  790.                  ("boubaker" +1000 nil s))
  791.                 ("lines"
  792.                  ;; Some people have really nothing to say!!
  793.                  (1 -10 nil <=))
  794.                 (mark -100)
  795.                 (expunge -1000)
  796.                 )
  797.  
  798.        5. From "Christopher Jones" <cjones@au.oracle.com>
  799.           The sample `all.SCORE' files from Per and boubaker could be
  800.           augmented with:
  801.                    (("subject"
  802.                      ;; No junk mail please!
  803.                      ("please ignore" -500 nil s)
  804.                      ("test" -500 nil e))
  805.                    )
  806.  
  807.        6. From "Brian Edmonds" <edmonds@cs.ubc.ca>
  808.           Augment any of the above with a fast method of scoring down
  809.           excessively cross posted articles.
  810.                 ("xref"
  811.                  ;; the more cross posting, the exponentially worse the article
  812.                  ("^xref: \\S-+ \\S-+ \\S-+ \\S-+" -1 nil r)
  813.                  ("^xref: \\S-+ \\S-+ \\S-+ \\S-+ \\S-+" -2 nil r)
  814.                  ("^xref: \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+" -4 nil r)
  815.                  ("^xref: \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+" -8 nil r)
  816.                  ("^xref: \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+" -16 nil r)
  817.                  ("^xref: \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+" -32 nil r)
  818.                  ("^xref: \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+" -64 nil r)
  819.                  ("^xref: \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+" -128 nil r)
  820.                  ("^xref: \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+" -256 nil r)
  821.                  ("^xref: \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+ \\S-+" -512 nil r))
  822.  
  823.  
  824.    * Q2.5  What do I use to yank-through when replying?
  825.  
  826.      You should probably reply and followup with `R' and `F', instead
  827.      of `r' and `f', which solves your problem.  But you could try
  828.      something like:
  829.  
  830.           (defconst mail-yank-ignored-headers
  831.             "^.*:"
  832.             "Delete these headers from old message when it's inserted in a reply.")
  833.  
  834.    * Q2.6  I don't like the default WWW browser
  835.  
  836.      Now when choosing an URL Gnus starts up a W3 buffer, I would like
  837.      it to always use Netscape (I don't browse in text-mode ;-).
  838.  
  839.        1. Activate `Customize...' from the `Help' menu.
  840.  
  841.        2. Scroll down to the `WWW Browser' field.
  842.  
  843.        3. Click `mouse-2' on `WWW Browser'.
  844.  
  845.        4. Select `Netscape' from the pop up menu.
  846.  
  847.        5. Press `C-c C-c'
  848.  
  849.  
  850.      If you are using XEmacs then to specify Netscape do
  851.             (setq gnus-button-url 'gnus-netscape-open-url)
  852.  
  853.    * Q2.7 What, if any, relation is between "ask-server" and "(setq
  854.      gnus-read-active-file 'some)"?
  855.  
  856.      In order for Gnus to show you the complete list of newsgroups, it
  857.      will either have to either store the list locally, or ask the
  858.      server to transmit the list. You enable the first with
  859.  
  860.                   (setq gnus-save-killed-list t)
  861.  
  862.      and the second with
  863.  
  864.                   (setq gnus-read-active-file t)
  865.  
  866.      If both are disabled, Gnus will not know what newsgroups exists.
  867.      There is no option to get the list by casting a spell.
  868.  
  869.    * Q2.8  Moving between groups is slow.
  870.  
  871.      Per Abrahamsen <abraham@dina.kvl.dk> writes:
  872.      Do you call `define-key' or something like that in one of the
  873.      summary mode hooks?  This would force Emacs to recalculate the
  874.      keyboard shortcuts.  Removing the call should speed up `M-x
  875.      gnus-summary-mode RET' by a couple of orders of magnitude.  You
  876.      can use
  877.  
  878.           (define-key gnus-summary-mode-map KEY COMMAND)
  879.  
  880.      in your `.gnus' instead.
  881.  
  882. 
  883. File: gnus.info,  Node: Reading News FAQ,  Next: Reading Mail FAQ,  Prev: Customization FAQ,  Up: Frequently Asked Questions
  884.  
  885. Reading News
  886. ------------
  887.  
  888.    * Q3.1  How do I convert my kill files to score files?
  889.  
  890.      A kill-to-score translator was written by Ethan Bradford
  891.      <ethanb@ptolemy.astro.washington.edu>.  It is available from
  892.  
  893.      `http://baugi.ifi.uio.no/~larsi/ding-various/gnus-kill-to-score.el'.
  894.  
  895.    * Q3.2 My news server has a lot of groups, and killing groups is
  896.      painfully slow.
  897.  
  898.      Don't do that then.  The best way to get rid of groups that should
  899.      be dead is to edit your newsrc directly.  This problem will be
  900.      addressed in the near future.
  901.  
  902.    * Q3.3  How do I use an NNTP server with authentication?
  903.  
  904.      Put the following into your .gnus:
  905.            (add-hook 'nntp-server-opened-hook 'nntp-send-authinfo)
  906.  
  907.    * Q3.4  Not reading the first article.
  908.  
  909.      How do I avoid reading the first article when a group is selected?
  910.  
  911.        1. Use `RET' to select the group instead of `SPC'.
  912.  
  913.        2. `(setq gnus-auto-select first nil)'
  914.  
  915.        3. Luis Fernandes <elf@mailhost.ee.ryerson.ca>writes:
  916.           This is what I use...customize as necessary...
  917.  
  918.                ;;; Don't auto-select first article if reading sources, or archives or
  919.                ;;; jobs postings, etc. and just display the summary buffer
  920.                (add-hook 'gnus-select-group-hook
  921.                      (function
  922.                       (lambda ()
  923.                         (cond ((string-match "sources" gnus-newsgroup-name)
  924.                            (setq gnus-auto-select-first nil))
  925.                               ((string-match "jobs" gnus-newsgroup-name)
  926.                                (setq gnus-auto-select-first nil))
  927.                           ((string-match "comp\\.archives" gnus-newsgroup-name)
  928.                            (setq gnus-auto-select-first nil))
  929.                           ((string-match "reviews" gnus-newsgroup-name)
  930.                            (setq gnus-auto-select-first nil))
  931.                           ((string-match "announce" gnus-newsgroup-name)
  932.                            (setq gnus-auto-select-first nil))
  933.                           ((string-match "binaries" gnus-newsgroup-name)
  934.                            (setq gnus-auto-select-first nil))
  935.                           (t
  936.                            (setq gnus-auto-select-first t))))))
  937.  
  938.        4. Per Abrahamsen <abraham@dina.kvl.dk> writes:
  939.           Another possibility is to create an `all.binaries.all.SCORE'
  940.           file like this:
  941.  
  942.                ((local
  943.                  (gnus-auto-select-first nil)))
  944.  
  945.           and insert
  946.                    (setq gnus-auto-select-first t)
  947.  
  948.           in your `.gnus'.
  949.  
  950.  
  951.    * Q3.5  Why aren't BBDB known posters marked in the summary buffer?
  952.  
  953.      Brian Edmonds <edmonds@cs.ubc.ca> writes:
  954.      Due to changes in Gnus 5.0, `bbdb-gnus.el' no longer marks known
  955.      posters in the summary buffer.  An updated version, `gnus-bbdb.el'
  956.      is available at the locations listed below.  This package also
  957.      supports autofiling of incoming mail to folders specified in the
  958.      BBDB.  Extensive instructions are included as comments in the file.
  959.  
  960.      Send mail to `majordomo@edmonds.home.cs.ubc.ca' with the following
  961.      line in the body of the message: *get misc gnus-bbdb.el*.
  962.  
  963.      Or get it from the World Wide Web:
  964.      `http://www.cs.ubc.ca/spider/edmonds/gnus-bbdb.el'.
  965.  
  966. 
  967. File: gnus.info,  Node: Reading Mail FAQ,  Prev: Reading News FAQ,  Up: Frequently Asked Questions
  968.  
  969. Reading Mail
  970. ------------
  971.  
  972.    * Q4.1 What does the message "Buffer has changed on disk" mean in a
  973.      mail group?
  974.  
  975.      Your filter program should not deliver mail directly to your
  976.      folders, instead it should put the mail into spool files.  Gnus
  977.      will then move the mail safely from the spool files into the
  978.      folders.  This will eliminate the problem.  Look it up in the
  979.      manual, in the section entitled "Mail & Procmail".
  980.  
  981.    * Q4.2  How do you make articles un-expirable?
  982.  
  983.      I am using nnml to read news and have used
  984.      `gnus-auto-expirable-newsgroups' to automagically expire articles
  985.      in some groups (Gnus being one of them).  Sometimes there are
  986.      interesting articles in these groups that I want to keep.  Is
  987.      there any way of explicitly marking an article as un-expirable -
  988.      that is mark it as read but not expirable?
  989.  
  990.      Use `u', `!', `d' or `M-u' in the summary buffer. You just remove
  991.      the `E' mark by setting some other mark. It's not necessary to
  992.      tick the articles.
  993.  
  994.    * Q4.3  How do I delete bogus nnml: groups?
  995.  
  996.      My problem is that I have various mail (nnml) groups generated
  997.      while experimenting with Gnus. How do I remove them now? Setting
  998.      the level to 9 does not help. Also `gnus-group-check-bogus-groups'
  999.      does not recognize them.
  1000.  
  1001.      Removing mail groups is tricky at the moment. (It's on the to-do
  1002.      list, though.) You basically have to kill the groups in Gnus, shut
  1003.      down Gnus, edit the active file to exclude these groups, and
  1004.      probably remove the nnml directories that contained these groups
  1005.      as well. Then start Gnus back up again.
  1006.  
  1007.    * Q4.4  What happened to my new mail groups?
  1008.  
  1009.      I got new mail, but I have never seen the groups they should have
  1010.      been placed in.
  1011.  
  1012.      They are probably there, but as zombies. Press `A z' to list
  1013.      zombie groups, and then subscribe to the groups you want with `u'.
  1014.      This is all documented quite nicely in the user's manual.
  1015.  
  1016.    * Q4.5  Not scoring mail groups
  1017.  
  1018.      How do you *totally* turn off scoring in mail groups?
  1019.  
  1020.      Use an nnbabyl:all.SCORE (or nnmh, or nnml, or whatever) file
  1021.      containing:
  1022.  
  1023.           ((adapt ignore)
  1024.            (local (gnus-use-scoring nil))
  1025.            (exclude-files "all.SCORE"))
  1026.  
  1027.